A software development process can include a structure for creating and maintaining a software product. A software development process can include multiple stages. Some example software development stages can include design, implementation, testing, and distribution. Some models of software development processes in existence today include waterfall model, spiral model, agile software development, extreme programming (XP), among others.
Modern software development processes for various data processing systems allow for participation of a vast number of diverse developers for a platform (e.g., a mobile device development platform). Tools for developing software for the platform can include a publicly available software development kit (SDK) and various rules and guidelines. The SDK can include various libraries and an integrated development environment (IDE). Using the SDK, a developer can develop an application program for the platform. The application program can be distributed to data processing systems that are compatible with the platform, for example, through an application store.